package com.wjj.system.mapper;

import com.mybatisflex.core.BaseMapper;
import org.apache.ibatis.annotations.Param;
import com.wjj.common.mybatis.core.page.PageQuery;
import com.wjj.system.domain.SysRole;
import com.wjj.system.domain.bo.SysRoleBo;
import com.wjj.system.domain.vo.SysRoleVo;

import java.util.List;

/**
 * 角色表 数据层
 *
 * @author Lion Li
 */
public interface SysRoleMapper extends BaseMapper<SysRole> {

    /**
     * 根据条件分页查询角色数据
     *
     * @param sysRoleBo 查询条件
     * @return 角色数据集合信息
     */
    List<SysRoleVo> selectRoleList(@Param("param") SysRoleBo sysRoleBo);

    SysRoleVo selectRoleById(Long roleId);

    /**
     * 根据用户ID查询角色
     *
     * @param userId 用户ID
     * @return 角色列表
     */
    List<SysRoleVo> selectRolePermissionByUserId(Long userId);

    /**
     * 根据用户ID查询角色
     *
     * @param userId 用户ID
     * @return 角色列表
     */
    List<SysRoleVo> selectRolesByUserId(Long userId);

    List<SysRoleVo> selectPageRoleList(@Param("param") SysRoleBo role, @Param("page")PageQuery pageQuery);

    Long selectPageRoleCount(@Param("param") SysRoleBo role);
}
